home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 2 / BBS in a box - Trilogy II.iso / Files / Game / F-G / Fractals! / Fractals.doc.txt < prev    next >
Encoding:
Text File  |  1989-10-07  |  7.2 KB  |  125 lines  |  [TEXT/MSWD]

  1. Fractals!
  2.  
  3. by Michael Webb
  4. version 1.0
  5. 9/24/89
  6.  
  7. Introduction
  8.  
  9. This document describes the Macintosh application Fractals!.  The program should run on any 
  10. Macintosh (MacPlus and better), and is Multifinder compatible.  (I wouldn't recommend using it 
  11. under Multifinder, however, as it is calculation intensive).  I wrote Fractals! because I wanted to 
  12. learn how to write Macintosh applications, and I like DLA's (what I call the pattern created by 
  13. Diffusion Limited Aggregation).
  14.  
  15. Fractals! is freeware!  I would like to hear from you, whether or not you actually like the program.  
  16. Please drop me a postcard or write to my email address below.  The further success of Fractals! 
  17. depends on the response I get from the users.  Further improvements could include (but are not 
  18. limited to) color on a MacII, full use of larger screen sizes, better printing (i.e. print full size instead 
  19. of a bitmap), etc.  Let me hear from you!  (That goes for bug reports as well).
  20.  
  21. You should have the following documents:
  22.  
  23. Fractals!  (the application)
  24. Three seed fractals named Seed100, Seed250 and Seed500, and BigOne.
  25. This document, in text and MSWord form.
  26.  
  27. This program is not in the public domain.  You may distribute it as you wish, just keep the above 
  28. files together.  Source code is available; contact me.
  29.  
  30.  
  31. Diffusion Limited Aggregation
  32.  
  33. The standard analogy used to describe diffusion limited aggregation concerns a group of drunks.  
  34. Suppose you release a drunk into a large field.  He will wander about randomly, taking steps in 
  35. arbitrary directions, with seemingly no method to his madness.  Suppose that after a while, he gets 
  36. tired and lays down to sleep.  Next, we let another drunk enter the field.  He has more stamina than 
  37. the first, and as he wanders, he stumbles upon the sleeping drunk.  Thinking that it must be a 
  38. comfortable place, he lays down and falls asleep.  As we let more and more drunks enter the field, a 
  39. random pattern develops.  This pattern has a characteristic form, and for reasons unknown to history 
  40. (to me, anyway), we call this form a fractal.  (The term was invented by Benoit Mandelbrot).  
  41. Actually, doing this experiment with a complex computer algorithm (similar to that used by 
  42. Fractals!),  one can show that if enough points are accumulated, the number of points within a 
  43. given radius will be given by:
  44.  
  45.         R  ≈  N^alpha
  46.  
  47. where R is the radius, and alpha is the fractal dimension.  Very large fractals have a dimension of 
  48. approximately 1.6.  Smaller ones will have slightly larger dimensions.  This number is characteristic 
  49. of this measurement, and I am told that no theory based on first principles can calculate it.  Fractals! 
  50. is a program to demonstrate this phenomena.  The name should now be somewhat obvious, we are 
  51. studying the aggregation (sticking) of particles moving completely randomly (diffusion limited).  (If 
  52. you ask how this can be for real particles, I would say that for most of it's travel, the particle is so far 
  53. from the main aggregate that Van derWaals forces are negligible.  Only when it comes close to the 
  54. aggregate do these forces take effect, and that's when the particle sticks).
  55.  
  56. A note for the keen student:  you may ask, "If the particle is moving randomly, how does it go 
  57. anywhere?  Shouldn't it just stay in one spot, since for each step to the left, it takes a step to the 
  58. right?"  That's good intuition (is it?), but as is the case sometimes, it is wrong.  It can be shown 
  59. (translation:  I know it's the right answer, but I either can't remember how to prove it, or it would 
  60. take too much effort) that if the step size of the drunk is one unit, after N steps, the drunk will be, on 
  61. the average, Sqrt(N) units away from where he started.  If you are interested in this point, and are 
  62. mathematical inclined, look at the classic text on Statistical Mechanics by Reif.
  63.  
  64.  
  65. Using Fractals!
  66.  
  67. The program runs very simply.  It moves a little point around the screen, and when the point hits the 
  68. aggregate, it sticks, and another point starts from a random position on the boundary.  You can either 
  69. start with a single point in the middle, or with one of the seeds I have provided.  (You can of course 
  70. grow your own seed).  After you have reached a predetermined size, the program will stop and 
  71. mindlessly display the fractal for as long as you wish.  If you grow tired (hee hee), you can stop the 
  72. simulation and save your fractal to grow again some other day.
  73.  
  74. The Apple Menu.  Should be self-explanatory for anybody who's used a Mac program before.
  75.  
  76. The File Menu.  This should also be transparent.  The Print option generates a simple bitmap of the 
  77. contents of the fractal window.
  78.  
  79. The Edit Menu.  This is included for Desk Accessories.  It is not used by Fractals!.
  80.  
  81. The Options Menu.  This menu has four entries:  Boundary . . . , Aggregate Size . . ., Show Point 
  82. and Show Boundary.
  83.  
  84. Boundary . . .will set the size of the buffer between the aggregate and the boundary.  You could think 
  85. of it as an method to change the boundary conditions.  A boundary buffer less than five lattice sites 
  86. wide does not give good results, so you cannot set the buffer to less than five (nor more than the 
  87. screen width).  Setting the buffer to five will grow about one particle a second, more or less.  (For 
  88. small fractal sizes).  To really appreciate this, you should set the buffer to 100 or so and see how far 
  89. you get in a couple of hours.  Not very far!  So why include this option at all?  The fractal growth 
  90. pattern is very sensitive to boundary conditions.  I use 'bouncing ball' boundary conditions, which 
  91. tend to keep the fractal growing more symmetrically compared to periodic (wrap around) boundary 
  92. conditions.  Larger boundaries are less sensitive to fluctuations.  You choose.
  93.  
  94. Aggregate Size . . . will fix the size of the aggregate (in the number of collected particles).  Useful if 
  95. you want to track the growth of a fractal over a period of time, or make a collection of 1500 point 
  96. fractals.
  97.  
  98. Show Point  If check-marked, the moving particle will be displayed as it wanders around the screen.  
  99. Actually, the particle is not displayed every time it moves, but every TENTH time.  This keeps the 
  100. algorithm moving fast; I/O is too slow to display the point every time it moves.  The effect of plotting 
  101. every tenth position isn't detrimental, but at times, the particle may move in jerky motions, and it may 
  102. seem to stick to the aggregate from a long way away.  It is operating correctly.  If Show Point is un-
  103. checkmarked, the moving point isn't shown at all; it only appears when it sticks.
  104.  
  105. Show Boundary  If check-marked, a border is plotted on the screen to show you where the boundary 
  106. is.  I don't particularly like it, but some of the beta testers wanted it, so I included it.  If un-
  107. checkmarked, no border is shown.
  108.  
  109. Program Features
  110. The target size of the aggregate is shown in the upper right corner.  The total number of particles 
  111. aggregated is displayed in the lower right hand corner.  The filename of the fractal is shown centered 
  112. at the top of the window.  The number of moves until aggregation for each particle is displayed in the 
  113. upper left corner.  This number is updated every time a particle sticks.
  114.  
  115. Above all, enjoy the pretty pictures!
  116.  
  117.  
  118.  
  119. Michael Webb
  120. 1789-1 Beal Ave.
  121. Ann Arbor, MI  48105
  122.  
  123. Michael_Webb@ub.cc.umich.edu    or
  124. user6lnu@umichub.BITNET
  125.